//formatter:off
/**
 *【第十三章】Solr3.6.2简介以及整合Tomcat
 * @see Solr是一个高性能的,采用Java5开发的,基于HTTP和Lucene实现的开源企业级全文搜索引擎
 * @see 可以粗暴的理解为:Lucene专注于搜索底层实现及算法优化,Solr专注于高层次的为企业服务的易于使用和管理的搜索服务器
 * @see 再粗暴一点理解为:Lucene和Solr的关系类似于,Ajax和jQuery,Servlet和Struts2,JAX-WS和CXF,NIO和Mina的关系
 * @see SolrJ是Solr提供的基于Java的访问Solr服务器的接口,它提供了对Solr服务器进行索引的CRUD(增删改查)和优化的相关接口
 * ------------------------------------------------------------
 * @see 官网:http://lucene.apache.org/solr/
 * @see 下载:http://archive.apache.org/dist/lucene/solr/
 * @see 文档:http://wiki.apache.org/solr/
 * @see      http://wiki.apache.org/solr/SolrInstall
 * @see      http://wiki.apache.org/solr/Solrj
 * @see      http://wiki.apache.org/solr/SolrCloud
 * @see      http://wiki.apache.org/solr/SolrCloud%20using%20Jboss
 * @see 启动:解压apache-solr-3.6.2.zip中的example文件夹到本地硬盘,然后命令行执行[java -jar start.jar]便启动了Solr服务器
 * @see     然后访问http://127.0.0.1:8983/solr/即可
 * ------------------------------------------------------------
 * @see 与Tomcat整合
 * @see 0)前提是到Solr官方下载到apache-solr-3.6.2.zip
 * @see 1)在本地硬盘新建文件夹D:\Develop\apache-solr-3.6.2\文件夹
 * @see 2)再新建D:\Develop\apache-solr-3.6.2\home\文件夹
 * @see 3)将下载的apache-solr-3.6.2.zip\example\solr\里面的内容拷贝到上一步新建的home文件夹中
 * @see 4)清空D:\Develop\apache-solr-3.6.2\home\data\文件夹里的内容
 * @see 5)再新建D:\Develop\apache-solr-3.6.2\server\文件夹
 * @see 6)将下载到的apache-solr-3.6.2.zip\example\webapps\里面的solr.war拷贝到上一步新建的server文件夹中
 * @see   然后将solr.war中的文件解压在当前目录,即server文件夹中
 * @see 7)编辑D:\Develop\apache-solr-3.6.2\home\conf\solrconfig.xml的第114行为下面的值
 * @see   <dataDir>${solr.data.dir:D:\Develop\apache-solr-3.6.2\home\data}</dataDir>
 * @see   其实这一步也可以把data目录放到环境变量中,然后使用${environmentVariable}就引用到了
 * @see 8)编辑D:\Develop\apache-tomcat-6.0.36\conf\server.xml的第144行(即<Hots>标签中)为下面的值
 * @see   <Context path="/solr" docBase="D:\Develop\apache-solr-3.6.2\server\solr" reloadable="false"/>
 * @see 9)为<Context/>设置相应的环境变量,指明Solr的主目录的地址,修改好后是这样的
 * @see   <Context path="/solr" docBase="D:\Develop\apache-solr-3.6.2\server\solr" reloadable="false">
 * @see       <Environment name="solr/home" type="java.lang.String" value="D:\Develop\apache-solr-3.6.2\home" override="true"/>
 * @see   </Context>
 * @see 10)启动Tomcat,然后访问http://127.0.0.1:8088/solr/即可
 * @see [注意事项]
 * @see 对于apache-solr-3.5.0.zip而言,最后在启动Tomcat时可能会报告下面的异常
 * @see 严重: org.apache.solr.common.SolrException: Error loading class 'solr.VelocityResponseWriter'
 * @see Caused by: java.lang.ClassNotFoundException: solr.VelocityResponseWriter
 * @see 这时就要修改D:\Develop\apache-solr-3.6.2\home\conf\solrconfig.xml文件的第1554行(对于solr-3.6.2而言就是第1573行)
 * @see <queryResponseWriter name="velocity" class="solr.VelocityResponseWriter" enable="${solr.velocity.enable:false}"/>
 * @see 如果在取消了(即设置为false)VelocityResponseWriter输出格式后,重启Tomcat还是报告此异常,那就直接把这行代码注释掉应该就可以了
 * ------------------------------------------------------------
 * @see D:\Develop\apache-solr-3.6.2\home\conf\schema.xml
 * @see 1)这个文件中定义了大量的域,而且每个域都指定了fieldType,fieldType中定义了每个域使用的分词器
 * @see 2)我们可以直接用solr定义好的域,也可以自定义域,并且solr提供的大量域中第一个域是id域,它的required是true,即必须的
 * @see   我们可以直接用它的id域,也可以自定义id域,但只能有一个域required="true"
 * @see 3)并且程序中使要用的域名,都要在schema.xml中指定好,否则会报告下面的异常
 * @see   org.apache.solr.common.SolrException: ERROR: [doc=1] unknown field 'content'
 * @see 4)该文件的第1026行可以配置默认的搜索域<defaultSearchField/>
 * @see   这个指的就是http://127.0.0.1:8088/solr/admin/界面中的Query String
 * ------------------------------------------------------------
 * @author Barudisshu
 */
//formatter:on
package net.lucene.chapter13.search;